package cn.edu.tju.cas.service;

import cn.edu.tju.cas.dao.UserGroupApplyDao;
import cn.edu.tju.cas.entity.GroupEntity;
import cn.edu.tju.cas.entity.UserEntity;
import cn.edu.tju.cas.entity.UserGroupApplyEntity;
import cn.edu.tju.cas.util.NewApply;
import org.springframework.web.multipart.MultipartFile;
import org.springframework.web.multipart.MultipartHttpServletRequest;

import java.util.ArrayList;
import java.util.List;


/**
 * Created by catold on 16/3/12.
 */
public interface ApplyService extends BaseService<UserGroupApplyEntity> {

    /**
     * 通过状态来查询申请
     * @param state 0:申请中， 1审核通过， 2：未通过
     * @return
     */
    List<UserGroupApplyEntity> queryByStateAndRelation(int state);

    UserGroupApplyEntity saveNewApply(UserEntity userEntity,NewApply newApply);

    /**
     *
     */
    List<UserGroupApplyEntity> findAllAndRelation();

    List<UserGroupApplyEntity> getUserGroupApply(int userid);


    /**
     *  认证角色中，添加文件，要能支持多文件上传，最好还能够控制上传文件的格式和数量
     * @param file
     * @param targetDir
     * @param baseUrl
     * @return
     */
    public  String uploadFile( MultipartFile file,String targetDir,String baseUrl);

    /**
     * 通过传入用户的身份证号码，获取用户所有的角色（这个角色是认证通过的那些角色）
     * @param userid
     * @return
     */
    public List<UserGroupApplyEntity> getCertifiedUserGroupApply(int userid);


    /**
     * 删除某用户的所有角色
     * @param userId
     */
    public void removeAllRolesByUserId(int userId);

}
